//楼顶在最后一个数组的后一个位置

//dp[i]表示到达i位置的最小花费(不计算当前位置的cost[i])
#include <iostream>
using namespace std;

const int N = 1e5 + 10;
int cost[N];
int n;
int dp[N];
int main() {
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> cost[i];
	}
	for (int i = 2; i <= n; i++)
	{
		dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);
	}
	cout << dp[n] << endl;
	return 0;
}